热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

主体|发生_C++基础入门丨6.函数——定义调用和声明

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C++基础入门丨6.函数——定义调用和声明相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C++基础入门丨6. 函数——定义调用和声明相关的知识,希望对你有一定的参考价值。




操作系统:Windows 10
IDE:Visual Studio 2019



文章目录


    • 1 函数的定义
    • 2 函数的调用
    • 3 值传递
    • 4 函数的常见样式
    • 5 函数的声明
    • 6 函数的分文件编写




函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。


函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。


C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。


函数还有很多叫法,比如方法、子例程或程序,等等。


——https://www.runoob.com/cplusplus/c+±functions.html



1 函数的定义

函数的定义一般主要有5个步骤:

1、返回值类型

2、函数名

3、参数表列

4、函数体语句

5、return 表达式

语法:

返回值类型 函数名 (参数列表)

函数体语句
return表达式


  • 返回值类型 :一个函数可以返回一个值。在函数定义中
  • 函数名:给函数起个名称
  • 参数列表:使用该函数时,传入的数据
  • 函数体语句:花括号内的代码,函数内需要执行的语句
  • return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据

2 函数的调用

函数的调用即:使用我们定义好的函数。

语法: 函数名(参数)

#include<iostream>
using namespace std;
//函数定义
int add(int num1, int num2) //定义中的num1,num2称为形式参数&#xff0c;简称形参

int sum &#61; num1 &#43; num2;
return sum;

int main()
int a &#61; 1;
int b &#61; 1;
//调用add函数
int sum &#61; add(a, b);//调用时的a&#xff0c;b称为实际参数&#xff0c;简称实
cout << "sum &#61; " << sum << endl;
system("pause");
return 0;


  • 注意实参形参的区别。

3 值传递

函数的值传递也就是在函数调用时&#xff0c;实参将值传递给形参。

值传递时&#xff0c;如果形参发生&#xff0c;并不会影响实参。

#include
using namespace std;
void swap(int num1, int num2)

int temp &#61; num1;
num1 &#61; num2;
num2 &#61; temp;
cout << "交换后&#xff1a;" << endl;
cout << "num1 &#61; " << num1 << endl;
cout << "num2 &#61; " << num2 << endl;
//return ; 当函数声明时候&#xff0c;不需要返回值&#xff0c;可以不写return

int main()
int a &#61; 10;
int b &#61; 20;
swap(a, b);
cout << "main中的 a &#61; " << a << endl;
cout << "main中的 b &#61; " << b << endl;
system("pause");
return 0;


  • 形参的值发生交换&#xff0c;不影响实参的值。

4 函数的常见样式

4中常见的函数样式


样式代码示例
无参无返void test01()
有参无返void test02(int a)
无参有返int test03()
有参有返int test04(int a, int b)

5 函数的声明

函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。


  • 当在一个源文件中定义函数且在另一个文件中调用函数时&#xff0c;函数声明是必需的。在这种情况下&#xff0c;应该在调用函数的文件顶部声明函数。
  • 函数的声明可以多次&#xff0c;但是函数的定义只能有一次

函数声明&#xff1a;int max(int num1, int num2);



函数声明和函数定义的区别。



6 函数的分文件编写

函数的分文件编写主要作用是&#xff1a;让代码结构更加清晰。

函数分文件编写一般有4个步骤


  1. 创建后缀名为**.h**的头文件
  2. 创建后缀名为**.c&#43;&#43;**的源文件
  3. 在头文件中写函数的声明
  4. 在源文件中写函数的定义

示例&#xff1a;

//swap.h文件
#include
using namespace std;
//实现两个数字交换的函数声明
void swap(int a, int b);

//swap.c&#43;&#43;文件
#include "swap.h"
void swap(int a, int b)

int temp &#61; a;
a &#61; b;
b &#61; temp;
cout << "a &#61; " << a << endl;
cout << "b &#61; " << b << endl;

//main函数文件
#include "swap.h"
int main()

int a &#61; 100;
int b &#61; 200;
swap(a, b);
system("pause");
return 0;

—— END ——



Reference


  • [1]&#xff1a;https://www.bilibili.com/video/BV1VJ411M7WR


如果以上内容有任何错误或者不准确的地方&#xff0c;欢迎在下面 &#x1f447; 留言。或者你有更好的想法&#xff0c;欢迎一起交流学习~~~

更多精彩内容请前往 AXYZdong的博客


推荐阅读
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
author-avatar
QX封面精选
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有